package com.anyou.mall.goo.service;

import java.util.List;

import com.anyou.common.core.domain.ApiResult;
import com.anyou.mall.goo.domain.GoodsSuit;
import com.anyou.mall.goo.goods.domain.GooGoods;
import com.anyou.mall.goo.param.AddGoodsSuitParam;
import com.anyou.mall.goo.vo.GoodsSuitDetailsVo;

/**
 * 套装商品Service接口
 *
 * @author gaochaohao
 * @date 2022-04-02
 */
public interface IGoodsSuitService
{
    /**
     * 查询套装商品
     *
     * @param goodsSuitId 套装商品主键
     * @return 套装商品
     */
    public GoodsSuitDetailsVo selectGoodsSuitByGoodsSuitId(Long goodsSuitId);

    /**
     * 查询套装商品列表
     *
     * @param goodsSuit 套装商品
     * @return 套装商品集合
     */
    public List<GoodsSuit> selectGoodsSuitList(GoodsSuit goodsSuit);

    /**
     * 新增套装商品
     *
     * @param goodsSuit 套装商品
     * @return 结果
     */
    public int insertGoodsSuit(GoodsSuit goodsSuit);

    /**
     * 修改套装商品
     *
     * @param goodsSuit 套装商品
     * @return 结果
     */
    public int updateGoodsSuit(GoodsSuit goodsSuit);

    /**
     * 批量删除套装商品
     *
     * @param goodsSuitIds 需要删除的套装商品主键集合
     * @return 结果
     */
    public int deleteGoodsSuitByGoodsSuitIds(Long[] goodsSuitIds);

    /**
     * 删除套装商品信息
     *
     * @param goodsSuitId 套装商品主键
     * @return 结果
     */
    public int deleteGoodsSuitByGoodsSuitId(Long goodsSuitId);

    /**
     * 查询商家商品列表
     * @param storeId
     * @return
     */
    ApiResult<List<GooGoods>> goodsName(Long storeId);

    /**
     * 获取SKU列表
     * @param goodsId
     * @return
     */
    ApiResult goodsSkuList(Long goodsId);

    /**
     * 新增套装
     * @param suitParam
     * @return
     */
    ApiResult addGoodsSuit(AddGoodsSuitParam suitParam);

    /**
     * 修改套装
     * @param suitParam
     * @return
     */
    ApiResult updateGoodsSuit(AddGoodsSuitParam suitParam);

    /**
     * 商品套装上下架
     * @param goodsSuit
     * @return
     */
    ApiResult shelfStatus(GoodsSuit goodsSuit);

    /**
     * 修改套装商品状态
     * @param goodsSuitId
     * @return
     */
    ApiResult updateEnableStatus(Long goodsSuitId);
}
